home *** CD-ROM | disk | FTP | other *** search
/ Amiga CD-Sensation: Golden Games / Amiga CD-Sensation - Ausgabe 2 - Golden Games (1996)(GTI - Schatztruhe)(DE)[!].iso / Adventurer's / ACS / source / makros_2 < prev    next >
Text File  |  1994-08-06  |  25KB  |  1,253 lines

  1. ;******************************
  2. ; Makros
  3. text__:        set 0
  4. text2__:    set 0
  5. zahl__:        set 0
  6. zahl2__:    set 0
  7. input__:    set 0
  8. blitter__:    set 0
  9. filer__:    set 0
  10. auto__:        set 0
  11. string__:    set 0
  12.  
  13. cpu:        MACRO
  14.         moveq #0,d0
  15.         move.l 4.w,a6
  16.         move.b $129(a6),d0
  17.         and.b #$13,d0        ;0=68000 1=68010 2=68020
  18.         ENDM            ;3=680ec20 usw. + $10=68881/2
  19. lower:        MACRO
  20. string__:    set 1
  21.         move.l \1,a0
  22.         jsr _lower_str
  23.         ENDM
  24. _upper:        MACRO
  25. string__:    set 1
  26.         move.l #klein,a0
  27.         jsr _upper_str
  28.         ENDM
  29. _left:        MACRO
  30. string__:    set 1
  31.         move.l \1,a0
  32.         move.l \2,a1
  33.         move.l \3,d0
  34.         sub.l #1,d0
  35.         jsr _left_str
  36.         ENDM
  37. _right:        MACRO
  38. string__:    set 1
  39.         move.l \1,a0
  40.         move.l \2,a1
  41.         move.l \3,d0
  42.         sub.l #1,d0
  43.         jsr _right_str
  44.         ENDM
  45. len:        MACRO
  46. string__:    set 1
  47.         move.l \1,a0
  48.         jsr _len
  49.         ENDM
  50. instr:        MACRO
  51. string__:    set 1
  52.         move.l \1,a0
  53.         move.l \2,a1
  54.         jsr _instr
  55.         ENDM
  56. _mid:        MACRO
  57. string__:    set 1
  58.         move.l \1,a0
  59.         move.l \2,a1
  60.         move.l \3,d0
  61.         sub.l #1,d0
  62.         jsr _cut_str
  63.         ENDM
  64. Auto_request:    MACRO
  65. auto__:        set 1
  66.         move.l \1,_ts1+12
  67.         move.l \2,_ts2+12
  68.         move.l \3,_ts3+12
  69.         moveq \4,d0
  70.         moveq \5,d1
  71.         move.l \6,d2            ;Breite
  72.         move.l \7,d3            ;Höhe
  73.         move.l _windowhd,a0
  74.         lea _ts1,a1
  75.         lea _ts2,a2
  76.         lea _ts3,a3
  77.         move.l _intbase,a6
  78.         jsr -348(a6)
  79.         ENDM
  80.  
  81. file_req:    MACRO
  82. filer__:    set 1
  83.         IFNE NARG-2
  84.         lea _rname\@(pc),a0
  85.         bra _filera\@
  86. _rname\@:    dc.b \1,0
  87.         even
  88. _filera\@:
  89.         bsr _file_req
  90.         ENDC
  91.         IFEQ NARG-2
  92.         lea _rnameb\@(pc),a0
  93.         bra _filerb\@
  94. _rnameb\@:    dc.b \1,0
  95.         even
  96. _filerb\@:
  97.         lea _rdir\@(pc),a1
  98.         bra _filerc\@
  99. _rdir\@:    dc.b \2,0
  100.         even
  101. _filerc\@:
  102.         lea _dir,a2
  103. _filerd\@:
  104.         move.b (a1)+,d0
  105.         beq.s _filer2\@
  106.         move.b d0,(a2)+
  107.         bra.s _filerd\@
  108. _filer2\@:
  109.         move.b #0,(a2)
  110.         bsr _file_req
  111.         ENDC
  112.         ENDM
  113.  
  114. sort_b:        MACRO
  115.         move.l \1,d0
  116.         move.l \2,a0
  117.         jsr _sort_b
  118.         ENDM
  119.  
  120. sort_w:        MACRO
  121.         move.l \1,d0
  122.         move.l \2,a0
  123.         jsr _sort_w
  124.         ENDM
  125.  
  126. sort_l:        MACRO
  127.         move.l \1,d0
  128.         move.l \2,a0
  129.         jsr _sort_l
  130.         ENDM
  131.  
  132. set_int:    MACRO
  133.         move.l \1,a0
  134.         jsr _set_int
  135.         ENDM
  136.  
  137. kill_int:    MACRO
  138.         jsr _kill_int
  139.         ENDM
  140.  
  141. joy0:        MACRO
  142.         move.l #$dff00a,a0
  143.         move.b #0,d1
  144.         jsr _get_joy
  145.         ENDM
  146.  
  147. joy1:        MACRO
  148.         move.l #$dff00c,a0
  149.         move.b #1,d1
  150.         jsr _get_joy
  151.         ENDM
  152.  
  153. fire0:        MACRO
  154.         move.b #0,d1
  155.         jsr _joy_fire
  156.         ENDM
  157.  
  158. fire1:        MACRO
  159.         move.b #1,d1
  160.         jsr _joy_fire
  161.         ENDM
  162.  
  163. wait_fire1:    MACRO
  164. wait_fire2\@:
  165.         move.b #1,d1
  166.         jsr _joy_fire
  167.         cmp.l #1,d1
  168.         bne.s wait_fire2\@
  169.         ENDM
  170.  
  171. wait_fire0:    MACRO
  172. wait_fire02\@:
  173.         move.b #0,d1
  174.         jsr _joy_fire
  175.         cmp.l #1,d1
  176.         bne.s wait_fire02\@
  177.         ENDM
  178.  
  179. load_font:    MACRO
  180.         move.l \2,_anfang_load
  181.         move.l \3,_lang_load
  182.         lea load2_font\@(pc),a5
  183.         move.l a5,_name_load
  184.         bra load3_font\@
  185.  
  186. load2_font\@:    dc.b "\1",0
  187.         even
  188. load3_font\@:        
  189.         jsr _bload
  190.         move.l \2,d0
  191.         add.l #100,d0
  192.         move.l d0,_char        
  193.         ENDM
  194.  
  195.  
  196. open_buffer:    MACRO
  197. blitter__:    set 1
  198.         move.l \1,_size0
  199.         get_mem \1,#Chip_Ram
  200.         move.l d0,_save_puffer
  201.         move.l d0,_shadow_mask
  202.         move.l d0,_coll_mask
  203.         ENDM
  204. close_buffer:    MACRO
  205.         fre_mem _size0,_save_puffer
  206.         ENDM
  207.  
  208. set_block:    MACRO
  209. blitter__:    set 1
  210.         jsr _set_planes
  211.         lea _objekt,a0
  212.         move.b \1,4(a0)        ;Modus
  213.         move.w \2,8(a0)        ;x
  214.         move.w \3,6(a0)        ;y
  215.         move.w \4,12(a0)    ;Breite in worten
  216.         move.w \5,10(a0)    ;hoehe
  217.         move.l \6,16(a0)    ;Bilddaten
  218.         moveq #0,d0
  219.         jsr InitMask
  220.         lea _objekt,a0
  221.         jsr PrintObjekt
  222.         ENDM
  223.  
  224. set_block_2:    MACRO
  225. blitter__:    set 1
  226.         jsr _set_planes
  227.         lea _objekt,a0
  228.         move.b #2,4(a0)        ;Modus (setzen)
  229.         move.w \1,8(a0)        ;x nur 16 X 16 Sprites
  230.         move.w \2,6(a0)        ;y
  231.         move.w #2,12(a0)    ;Breite in worten
  232.         move.w #16,10(a0)    ;hoehe
  233.         move.l \3,d1        ;Bilddaten
  234.         move.l \4,d0        ;Sprite Nummer
  235.         mulu #448,d0
  236.         add.l d0,d1
  237.         move.l d1,16(a0)
  238.         add.l #384,d1        ;4 Bytes *16 Reihen *6 planes
  239.         move.l d1,_shadow_mask
  240.         lea _objekt,a0
  241.         jsr PrintObjekt
  242.         ENDM
  243.  
  244. sprite:        MACRO
  245. blitter__:    set 1
  246.         jsr _set_planes
  247.         lea _objekt,a0
  248.         move.b \5,4(a0)        ;Modus (setzen)
  249.         move.w \1,8(a0)        ;x nur 16 X 16 Sprites
  250.         move.w \2,6(a0)        ;y
  251.         move.w #2,12(a0)    ;Breite in worten
  252.         move.w #16,10(a0)    ;hoehe
  253.         move.l \3,d1        ;Bilddaten
  254.         move.l \4,d0        ;Sprite Nummer
  255.         mulu #448,d0
  256.         add.l d0,d1
  257.         move.l d1,16(a0)
  258.         add.l #384,d1        ;4 Bytes *16 Reihen *6 planes
  259.         move.l d1,_shadow_mask
  260.         lea _objekt,a0
  261.         jsr PrintObjekt
  262.         ENDM
  263.  
  264. c_color:    MACRO
  265.         move.w \1,d0        ;Farbnummer
  266.         move.w \2,d1        ;Farbe
  267.         jsr _copper_farben
  268.         ENDM
  269.  
  270. set_pal:    MACRO
  271.         move.l \1,a0
  272.         jsr _copper_pallette
  273.         ENDM
  274.  
  275. set_charset:    MACRO
  276.         move.l \1,d0
  277.         add.l #100,d0
  278.         move.l d0,_grafset
  279.         ENDM
  280.  
  281. set_char0:    MACRO
  282.         movem.l d0-d7/a0-a6,-(a7)
  283.         move.l \1,d0        ;X_Pos
  284.         move.l \2,d1        ;Y_Pos
  285.         move.l \3,d2        ;Element Nr.
  286.         move.l \4,a6        ;Zeichensatz
  287.         add.l #100,a6
  288.         jsr _set_ein_kasten
  289.         movem.l (a7)+,d0-d7/a0-a6
  290.         ENDM
  291.  
  292. set_char:    MACRO
  293.         move.l \1,d0        ;Xcoor
  294.         move.l \2,d1        ;Ycoor
  295.         move.l \3,_x_aus    ;x-1
  296.         move.l \4,_y_aus    ;y-1
  297.         move.l \5,a5
  298.         jsr _set_kasten
  299.         ENDM
  300.  
  301. set_charb:    MACRO
  302.         movem.l d0-d7/a0-a6,-(a7)
  303.         move.l \1,d0        ;Xcoor
  304.         move.l \2,d1        ;Ycoor
  305.         move.l \3,a5
  306.         move.l 4(a5),_x_aus    ;x-1
  307.         move.l 8(a5),_y_aus    ;y-1
  308.         add.l #12,a5
  309.         jsr _set_kasten
  310.         movem.l (a7)+,d0-d7/a0-a6
  311.         ENDM
  312.  
  313. screen_front:    MACRO
  314.         move.l _intbase,a6
  315.         move.l _screenhd,a0
  316.         jsr -252(a6)
  317.         ENDM
  318.  
  319. screen_back:    MACRO
  320.         move.l _intbase,a6
  321.         move.l _screenhd,a0
  322.         jsr -246(a6)
  323.         ENDM
  324.  
  325. ;-----------------------------------------
  326. ; ** text #farbe,#x,#y,#string **
  327. ;-----------------------------------------
  328. ptext:        MACRO
  329. text__:        set 1
  330.         movem.l d0-d7/a0-a6,-(a7)
  331.         move.w \1,d0
  332.         move.w \2,d2
  333.         move.w \3,d3
  334.         move.l \4,a5
  335.         jsr _scan_text
  336.         movem.l (a7)+,d0-d7/a0-a6
  337.         ENDM
  338.  
  339. print:        MACRO
  340. text__:        set 1
  341.         movem.l d0-d7/a0-a6,-(a7)
  342.         move.w \1,d0        ;Farbe
  343.         move.w \2,d2        ;X Koordinate
  344.         move.w \3,d3        ;Y Koordinate
  345.         lea pri\@(pc),a5
  346.         bra prin\@
  347.  
  348. pri\@:        dc.b \4,0
  349.  
  350.         even
  351.  
  352. prin\@:        jsr _to_space
  353.         jsr _scan_text
  354.         movem.l (a7)+,d0-d7/a0-a6
  355.         ENDM
  356.  
  357. ;------------------------------------------
  358. ; text2 #farbe,#x,#y,#string
  359. ;------------------------------------------
  360. text2:        MACRO
  361. text2__:    set 1
  362.         movem.l d0-d7/a0-a6,-(a7)
  363.         move.w \1,_color
  364.         move.w \2,_x
  365.         move.w \3,_y
  366.         move.l \4,_str
  367.         jsr _text2_prg
  368.         movem.l (a7)+,d0-d7/a0-a6
  369.         ENDM
  370.  
  371. ;-----------------------------------------
  372. ; input #farbe,#x,#y,string,#laenge
  373. ;-----------------------------------------
  374.  
  375. input:        MACRO
  376. input__:    set 1
  377. text__:        set 1
  378.         movem.l d0-d7/a0-a6,-(a7)
  379.         lea _tasten_tab,a0
  380.         move.l a0,_codes
  381.         move.w \1,_farbe2
  382.         move.w \2,d3        ;X Koordinate
  383.         move.w \3,d4        ;Y  "      "
  384.         lea \4,a0        ;Adresse des Strings
  385.         move.b \5,_entlong    ;max Laenge
  386.         move.l a0,_anfang
  387.         jsr _entername
  388.         movem.l (a7)+,d0-d7/a0-a6
  389.         ENDM
  390.  
  391. ;-----------------------------------------
  392. ; zinput #farbe,#x,#y,string,#laenge
  393. ;-----------------------------------------
  394.  
  395. zinput:        MACRO
  396. input__:    set 1
  397. text__:        set 1
  398.         movem.l d0-d7/a0-a6,-(a7)
  399.         lea _tasten_tab2,a0
  400.         move.l a0,_codes
  401.         move.w \1,_farbe2
  402.         move.w \2,d3        ;X Koordinate
  403.         move.w \3,d4        ;Y  "      "
  404.         lea \4,a0        ;Adresse des Strings
  405.         move.b \5,_entlong    ;max Laenge
  406.         move.l a0,_anfang
  407.         jsr _entername
  408.         movem.l (a7)+,d0-d7/a0-a6
  409.         ENDM
  410.  
  411. ;-----------------------------------------
  412. cls:        MACRO
  413.         movem.l d0-d7/a0-a6,-(a7)
  414.         jsr _cls0
  415.         movem.l (a7)+,d0-d7/a0-a6
  416.         ENDM
  417.  
  418. wait_mouse:    MACRO
  419. wait_mouse1\@:    btst #6,$bfe001
  420.         bne.s wait_mouse1\@
  421.         ENDM
  422.  
  423. wait_mouser:    MACRO
  424. wait_mouser1\@:    btst #10,$dff016
  425.         bne.s wait_mouser1\@
  426.         ENDM
  427.  
  428. led_on:        MACRO
  429.         and.b #253,$bfe001
  430.         ENDM
  431.  
  432. led_off:    MACRO
  433.         or.b #2,$bfe001
  434.         ENDM
  435.  
  436. ;------------------------------------------
  437. ; get_fre #Chip_Ram
  438. ; get_fre #Fast_Ram
  439. ;------------------------------------------
  440. get_fre:    MACRO
  441.         movem.l d1-d7/a0-a6,-(a7)
  442.         move.l \1,d1
  443.         move.l ExecBase,a6
  444.         jsr AvailMem(a6)
  445.         movem.l (a7)+,d1-d7/a0-a6
  446.         ENDM
  447.  
  448. rnd:        MACRO
  449.         jsr _fallzu    ;Zufalls Zahl in D0.b und zuzahl(1-16)
  450.         ENDM
  451.  
  452. rnd16:        MACRO
  453.         jsr _fallzu16    ;Zufalls Zahl in D0.w und zuzahl16(16 Bit)
  454.         ENDM
  455.  
  456. wait_key:    MACRO
  457. wait_key\@:    moveq #0,d0         
  458.         jsr _syskey
  459.         beq.s wait_key\@
  460.         ENDM
  461.  
  462. wait_km:    MACRO        ;wartet ouf Maus oder Tasten Druck
  463.         jsr _bf_2b
  464.         ENDM
  465.  
  466. get_xy:        MACRO
  467.         moveq #0,d0
  468.         moveq #0,d1
  469.         move.l _screenhd,a0
  470.         move.w $12(a0),d0    ;X Koord hohlen
  471.         move.w $10(a0),d1    ;Y Koord hohlen
  472.         ENDM
  473.  
  474. mouse_x:    MACRO
  475.         moveq #0,d0
  476.         move.l _screenhd,a0
  477.         move.w $12(a0),d0    ;X Koord hohlen
  478.         ENDM
  479.  
  480.  
  481. mouse_y:    MACRO
  482.         moveq #0,d0
  483.         move.l _screenhd,a0
  484.         move.w $10(a0),d0    ;Y Koord hohlen
  485.         ENDM
  486.  
  487.  
  488. sys_init:    MACRO
  489.         move.b #0,_bv
  490.         jsr _init
  491.         ENDM
  492.  
  493. sys_exit:    MACRO
  494.         jsr _exit
  495.         ENDM
  496.  
  497. getch:        MACRO            ;solange bis Taste gedrueckt
  498.         movem.l d1-d7/a0-a6,-(a7)
  499.         jsr _getch        ;D0.b = Tasten Wert
  500.         movem.l (a7)+,d1-d7/a0-a6
  501.         ENDM
  502.  
  503. key:        MACRO
  504.         movem.l d1-d7/a0-a6,-(a7)
  505.         jsr _getch2        ;D0.b = Tasten Wert
  506.         movem.l (a7)+,d1-d7/a0-a6
  507.         ENDM
  508.  
  509. delay:        MACRO
  510.         movem.l d0-d7/a0-a6,-(a7)
  511.         move.l \1,_wait
  512.         jsr _warte
  513.         movem.l (a7)+,d0-d7/a0-a6
  514.         ENDM
  515.  
  516. ;-----------------------------------------
  517. ; ** zahl #farbe,#x,#y,#zahl **
  518. ;-----------------------------------------
  519. zahl:        MACRO
  520. zahl__:        set 1
  521.         movem.l d0-d7/a0-a6,-(a7)
  522.         move.w \1,_farbe
  523.         move.w \2,_xcoord
  524.         move.w \3,_ycoord
  525.         move.l \4,d0
  526.         jsr _zstring
  527.         ptext _farbe,_xcoord,_ycoord,#_z
  528.         movem.l (a7)+,d0-d7/a0-a6
  529.         ENDM
  530.  
  531. ;-----------------------------------------
  532. ; ** zahlr #farbe,#x,#y,#zahl **
  533. ;-----------------------------------------
  534. zahlr:        MACRO
  535. zahl__:        set 1
  536.         movem.l d0-d7/a0-a6,-(a7)
  537.         move.w \1,_farbe
  538.         move.w \2,_xcoord
  539.         move.w \3,_ycoord
  540.         move.l \4,d0
  541.         jsr _rbuendig
  542.         jsr _zstring
  543.         ptext _farbe,_xcoord,_ycoord,#_z
  544.         movem.l (a7)+,d0-d7/a0-a6
  545.         ENDM
  546.  
  547. ;------------------------------------------
  548. ; load #fileneame,#anfang des Speichers,#laenge
  549. ;------------------------------------------
  550. load:        MACRO
  551.         move.l \1,_name_load
  552.         move.l \2,_anfang_load
  553.         move.l \3,_lang_load
  554.         jsr _bload
  555.         ENDM
  556.  
  557. loadb:        MACRO
  558.         move.l \2,_anfang_load
  559.         move.l \3,_lang_load
  560.         lea load2b\@(pc),a5
  561.         move.l a5,_name_load
  562.         bra load3b\@
  563.  
  564. load2b\@:    dc.b \1,0
  565.         even
  566. load3b\@:        
  567.         jsr _bload
  568.         ENDM
  569.  
  570. ;------------------------------------------
  571. ; save #fileneame,#anfang der Daten,#laenge
  572. ;------------------------------------------
  573. save:        MACRO
  574.         move.l \1,_name_save
  575.         move.l \2,_anfang_save
  576.         move.l \3,_lang_save
  577.         move.l #1006,_modus
  578.         jsr _bsave
  579.         ENDM
  580.  
  581. saveb:        MACRO
  582.         move.l \2,_anfang_save
  583.         move.l \3,_lang_save
  584.         lea save2b\@(pc),a5
  585.         move.l a5,_name_save
  586.         bra save3b\@
  587.  
  588. save2b\@:    dc.b \1,0
  589.         even
  590. save3b\@:        
  591.         move.l #1006,_modus
  592.         jsr _bsave
  593.         ENDM
  594.  
  595. ;------------------------------------------
  596. ; delete #filename
  597. ;------------------------------------------
  598. delete_b:    MACRO
  599.         jsr _dosopen
  600.         move.l \1,d1
  601.         move.l _dosbase,a6
  602.         jsr DeleteFile(a6)
  603.         jsr _dosclose
  604.         ENDM
  605.  
  606. delete:        MACRO
  607.         jsr _dosopen
  608.         lea deleteb\@(pc),a5
  609.         move.l a5,d1
  610.         bra deleteb2\@
  611.  
  612. deleteb\@:    dc.b \1,0
  613.         even
  614. deleteb2\@:
  615.         move.l _dosbase,a6
  616.         jsr DeleteFile(a6)
  617.         jsr _dosclose
  618.         ENDM
  619.  
  620.  
  621. wait_vbl:    MACRO
  622. wait_vbl2\@:
  623.         move.l $dff004,d0
  624.         lsr.l #8,d0
  625.         cmp.w #254,d0            ;207
  626.         blt.s wait_vbl2\@
  627.         ENDM
  628.  
  629. wait_vblb:    MACRO
  630. wait_vbl2b\@:
  631.         move.l _vp,a0
  632.         move.l _graphbase,a6
  633.         jsr -402(a6)
  634.         ENDM
  635.  
  636. flip_page:    MACRO
  637.         movem.l d0-d7/a0-a6,-(a7)
  638.         jsr _flip
  639.         jsr _neue_adr
  640.         movem.l (a7)+,d0-d7/a0-a6
  641.         ENDM
  642.  
  643. equ_screen:    MACRO
  644.         movem.l d0-d7/a0-a6,-(a7)
  645.         jsr _equ
  646.         jsr _neue_adr
  647.         movem.l (a7)+,d0-d7/a0-a6
  648.         ENDM
  649.  
  650. back:        MACRO
  651.         movem.l d0-d7/a0-a6,-(a7)
  652.         move.b #1,_bv
  653.         jsr _back_plane
  654.         jsr _neue_adr
  655.         movem.l (a7)+,d0-d7/a0-a6
  656.         ENDM
  657.  
  658. front:        MACRO
  659.         movem.l d0-d7/a0-a6,-(a7)
  660.         move.b #0,_bv
  661.         jsr _front_plane
  662.         jsr _neue_adr
  663.         movem.l (a7)+,d0-d7/a0-a6
  664.         ENDM
  665.  
  666. get_number:    MACRO
  667. zahl2__:    set 1
  668.         movem.l d1-d7/a0-a6,-(a7)
  669.         lea \1,a0        ;Adresse des Strings
  670.         jsr _stzahl
  671.         move.l d0,_number    ;Zahl sichern
  672.         movem.l (a7)+,d1-d7/a0-a6
  673.         ENDM
  674.  
  675.  
  676. ;------------------------------------------
  677. ; get_mem #groesse,#Chip_Ram
  678. ; get_mem #groesse,#Fast_Ram
  679. ;------------------------------------------
  680. get_mem:    MACRO
  681.         movem.l d1-d7/a0-a6,-(a7)
  682.         move.l \1,d0        ;Speichergroesse
  683.         move.l \2,d1        ;Bedingungen
  684.         move.l ExecBase,a6
  685.         jsr AllocMem(a6)    ;D0 = Anfangsadresse des Speichers
  686.         movem.l (a7)+,d1-d7/a0-a6
  687.         ENDM            ;D0 = 0 dann Fehler
  688.  
  689. ;------------------------------------------
  690. ; fre_mem #groesse,Anfang
  691. ;------------------------------------------
  692. fre_mem:    MACRO            ;Freedom for Random Acces Memory
  693.         movem.l d0-d7/a0-a6,-(a7)
  694.         move.l \1,d0        ;Speichergroesse
  695.         move.l \2,a1        ;Anfang des Speicherblocks
  696.         move.l ExecBase,a6
  697.         jsr FreeMem(a6)
  698.         movem.l (a7)+,d0-d7/a0-a6
  699.         ENDM
  700.  
  701. ;------------------------------------------
  702. ; color #farbnummer,#rot,#gelb,#blau
  703. ;------------------------------------------
  704. color:        MACRO
  705.         movem.l d0-d7/a0-a6,-(a7)
  706.         move.l _vp,a0        ;Viewport
  707.         move.l \1,d0        ;Farbregister 0
  708.         move.w \2,d1        ;rot
  709.         move.w \3,d2        ;gelb
  710.         move.w \4,d3        ;blau
  711.         move.l _graphbase,a6
  712.         jsr -288(a6)
  713.         movem.l (a7)+,d0-d7/a0-a6
  714.         ENDM
  715.  
  716. ;------------------------------------------
  717. ; compare string1,string2
  718. ;------------------------------------------
  719. compare:    MACRO
  720.         movem.l d1-d7/a0-a6,-(a7)
  721.         lea \1(pc),a0
  722.         lea \2(pc),a1
  723.         jsr _compare        ;d0=1 ungleich
  724.         movem.l (a7)+,d1-d7/a0-a6
  725.         ENDM
  726. ;------------------------------------------
  727. ; set_pointer #wert
  728. ;------------------------------------------
  729. set_pointer:    MACRO
  730.         movem.l d0-d7/a0-a6,-(a7)
  731.         moveq \1,d5
  732.         jsr _set_pointer
  733.         movem.l (a7)+,d0-d7/a0-a6
  734.         ENDM
  735.  
  736. clr_pointer:    MACRO
  737.         movem.l d0-d7/a0-a6,-(a7)
  738.         jsr _clr_pointer
  739.         movem.l (a7)+,d0-d7/a0-a6
  740.         ENDM
  741.  
  742. alert:        MACRO
  743.         movem.l d0-d7/a0-a6,-(a7)
  744.         jsr _alert
  745.         movem.l (a7)+,d0-d7/a0-a6
  746.         ENDM
  747.  
  748. copy_mem:    MACRO
  749.         movem.l d0-d7/a0-a6,-(a7)
  750.         move.l \1,a0
  751.         move.l \2,a1
  752.         move.l \3,d0
  753.         move.l ExecBase,a6
  754.         jsr -624(a6)
  755.         movem.l (a7)+,d0-d7/a0-a6
  756.         ENDM
  757. copy_mem2:    MACRO
  758.         movem.l d0-d7/a0-a6,-(a7)
  759.         move.l \1,a0
  760.         move.l \2,a1
  761.         move.l \3,d0
  762.         move.l ExecBase,a6
  763.         jsr -630(a6)
  764.         movem.l (a7)+,d0-d7/a0-a6
  765.         ENDM
  766.  
  767.  
  768. ;------------------------------------------
  769. ; pen #farbnummer
  770. ;------------------------------------------
  771. pen:        MACRO
  772.         movem.l d0-d7/a0-a6,-(a7)
  773.         move.l _rp,a1        ;Rastport
  774.         move.l \1,d0        ;Color
  775.         move.l _graphbase,a6
  776.         jsr -342(a6)
  777.         movem.l (a7)+,d0-d7/a0-a6
  778.         ENDM
  779. ;------------------------------------------
  780. ; paper #farbnummer
  781. ;------------------------------------------
  782. paper:        MACRO
  783.         movem.l d0-d7/a0-a6,-(a7)
  784.         move.l _rp,a1        ;Rastport
  785.         move.l \1,d0        ;Color
  786.         move.l _graphbase,a6
  787.         jsr -348(a6)
  788.         movem.l (a7)+,d0-d7/a0-a6
  789.         ENDM
  790. ;------------------------------------------
  791. ; setrast #farbnummer    ;Rastport einfärben
  792. ;------------------------------------------
  793. setrast:    MACRO
  794.         movem.l d0-d7/a0-a6,-(a7)
  795.         move.l _rp,a1        ;Rastport
  796.         move.l \1,d0        ;Color
  797.         move.l _graphbase,a6
  798.         jsr -234(a6)
  799.         movem.l (a7)+,d0-d7/a0-a6
  800.         ENDM
  801. ;------------------------------------------
  802. ; draw #farbstift,#xcor,#ycor
  803. ;------------------------------------------
  804. draw:        MACRO
  805.         movem.l d0-d7/a0-a6,-(a7)
  806.         pen \1
  807.         move.l _rp,a1        ;Rastport
  808.         move.l \2,d0        ;Xcor
  809.         move.l \3,d1        ;Ycor
  810.         move.l _graphbase,a6
  811.         jsr -246(a6)
  812.         movem.l (a7)+,d0-d7/a0-a6
  813.         ENDM
  814. ;------------------------------------------
  815. ; point #farbe,#xcor,#ycor
  816. ;------------------------------------------
  817. point:        MACRO
  818.         movem.l d0-d7/a0-a6,-(a7)
  819.         pen \1
  820.         move.l _rp,a1        ;Rastport
  821.         move.l \2,d0        ;Xcor
  822.         move.l \3,d1        ;Ycor
  823.         move.l _graphbase,a6
  824.         jsr -324(a6)
  825.         movem.l (a7)+,d0-d7/a0-a6
  826.         ENDM
  827. ;------------------------------------------
  828. ; plot #farbe,#xcor,#ycor
  829. ;------------------------------------------
  830. plot:        MACRO
  831.         movem.l d0-d7/a0-a6,-(a7)
  832.         move.w \1,d2
  833.         move.w \2,d0        ;Xcor
  834.         move.w \3,d1        ;Ycor
  835.         jsr _set0
  836.         movem.l (a7)+,d0-d7/a0-a6
  837.         ENDM
  838. ;------------------------------------------
  839. ; elipsee #farbe,#xcor,#ycor,#xradius,#yradius
  840. ;------------------------------------------
  841. elipse:        MACRO
  842.         movem.l d0-d7/a0-a6,-(a7)
  843.         pen \1
  844.         move.l _rp,a1        ;Rastport
  845.         move.l \2,d0        ;Xcor
  846.         move.l \3,d1        ;Ycor
  847.         move.l \4,d2        ;Xcor
  848.         move.l \5,d3        ;Ycor
  849.         move.l _graphbase,a6
  850.         jsr -180(a6)
  851.         movem.l (a7)+,d0-d7/a0-a6
  852.         ENDM
  853. ;------------------------------------------
  854. ; circle #farbe,#xcor,#ycor,#radius
  855. ;------------------------------------------
  856. circle:        MACRO
  857.         movem.l d0-d7/a0-a6,-(a7)
  858.         pen \1
  859.         move.l _rp,a1        ;Rastport
  860.         move.l \2,d0        ;Xcor
  861.         move.l \3,d1        ;Ycor
  862.         move.l \4,d2        ;Xcor
  863.         move.l d2,d3        ;Ycor
  864.         move.l _graphbase,a6
  865.         jsr -180(a6)
  866.         movem.l (a7)+,d0-d7/a0-a6
  867.         ENDM
  868. ;------------------------------------------
  869. ; polydraw #anzahl,#pointarrray
  870. ;------------------------------------------
  871. polydraw:    MACRO
  872.         movem.l d0-d7/a0-a6,-(a7)
  873.         move.l _rp,a1        ;Rastport
  874.         move.l \1,d0        ;Anzahl
  875.         move.l \2,a0        ;Zeiger auf Liste
  876.         move.l _graphbase,a6
  877.         jsr -336(a6)
  878.         movem.l (a7)+,d0-d7/a0-a6
  879.         ENDM
  880. ;------------------------------------------
  881. ; readpixel #xcor,#ycor
  882. ;------------------------------------------
  883. readpixel:    MACRO
  884.         movem.l d1-d7/a0-a6,-(a7)
  885.         move.l _rp,a1        ;Rastport
  886.         move.l \1,d0        ;x
  887.         move.l \2,d1        ;y
  888.         move.l _graphbase,a6    ;in d0 color
  889.         jsr -318(a6)
  890.         movem.l (a7)+,d1-d7/a0-a6
  891.         ENDM
  892. ;------------------------------------------
  893. ; flood #modus,#xcor,#ycor
  894. ;------------------------------------------
  895. flood:        MACRO
  896.         movem.l d0-d7/a0-a6,-(a7)
  897.         move.l _rp,a1        ;Rastport
  898.         move.l \1,d2        ;modus
  899.         move.l \2,d0        ;Xcor
  900.         move.l \3,d1        ;Ycor
  901.         move.l _graphbase,a6
  902.         jsr -330(a6)
  903.         movem.l (a7)+,d0-d7/a0-a6
  904.         ENDM
  905. ;------------------------------------------
  906. ; rectfill #farbe,#x1,#y1,#x2,#y2
  907. ;------------------------------------------
  908. rectfill:    MACRO
  909.         movem.l d0-d7/a0-a6,-(a7)
  910.         pen \1
  911.         move.l _rp,a1        ;Rastport
  912.         move.l \2,d0        ;Xcor
  913.         move.l \3,d1        ;Ycor
  914.         move.l \4,d2        ;Xcor
  915.         move.l \5,d3        ;Ycor
  916.         move.l _graphbase,a6
  917.         jsr -306(a6)
  918.         movem.l (a7)+,d0-d7/a0-a6
  919.         ENDM
  920. ;-----------------------------------------
  921. ;waittof
  922. ;-----------------------------------------
  923. waittof:    MACRO
  924.         movem.l d0-d7/a0-a6,-(a7)
  925.         move.l _graphbase,a6
  926.         jsr -270(a6)
  927.         movem.l (a7)+,d0-d7/a0-a6
  928.         ENDM
  929. ;-----------------------------------------
  930. ;vbeampos
  931. ;-----------------------------------------
  932. vbeampos:    MACRO
  933.         move.l _graphbase,a6
  934.         jsr -384(a6)
  935.         ENDM
  936. ;-----------------------------------------
  937. ;waitbovp
  938. ;-----------------------------------------
  939. waitbovp:    MACRO
  940.         movem.l d0-d7/a0-a6,-(a7)
  941.         move.l _vp,a0
  942.         move.l _graphbase,a6
  943.         jsr -402(a6)
  944.         movem.l (a7)+,d0-d7/a0-a6
  945.         ENDM
  946. ;-----------------------------------------
  947. ;ownblitter
  948. ;-----------------------------------------
  949. ownblitter:    MACRO
  950.         movem.l d0-d7/a0-a6,-(a7)
  951.         move.l _graphbase,a6
  952.         jsr -456(a6)
  953.         movem.l (a7)+,d0-d7/a0-a6
  954.         ENDM
  955. ;-----------------------------------------
  956. ;disownblitter
  957. ;-----------------------------------------
  958. disownblitter:    MACRO
  959.         movem.l d0-d7/a0-a6,-(a7)
  960.         move.l _graphbase,a6
  961.         jsr -462(a6)
  962.         movem.l (a7)+,d0-d7/a0-a6
  963.         ENDM
  964. ;-----------------------------------------
  965. ;waitblit
  966. ;-----------------------------------------
  967. waitblit:    MACRO
  968.         movem.l d0-d7/a0-a6,-(a7)
  969.         move.l _graphbase,a6
  970.         jsr -228(a6)
  971.         movem.l (a7)+,d0-d7/a0-a6
  972.         ENDM
  973. ;-----------------------------------------
  974. ;bltclear
  975. ;-----------------------------------------
  976. bltclear:    MACRO
  977.         movem.l d0-d7/a0-a6,-(a7)
  978.         move.l \1,a1        ;Speicher
  979.         move.l \2,d0        ;Anzahl der Bytes
  980.         move.l \3,d1        ;Flags
  981.         move.l _graphbase,a6
  982.         jsr -300(a6)
  983.         movem.l (a7)+,d0-d7/a0-a6
  984.         ENDM
  985. ;-----------------------------------------
  986. ;setdrmd    ;Zeichenmodus festlegen
  987. ;-----------------------------------------
  988. setdrmd:    MACRO
  989.         movem.l d0-d7/a0-a6,-(a7)
  990.         move.l _rp,a1        ;
  991.         move.l \1,d0        ;Zeichenmodus
  992.         move.l _graphbase,a6
  993.         jsr -354(a6)
  994.         movem.l (a7)+,d0-d7/a0-a6
  995.         ENDM
  996. ;-----------------------------------------
  997. ;cleareol    ;ab Zeile löschen
  998. ;-----------------------------------------
  999. cleareol:    MACRO
  1000.         movem.l d0-d7/a0-a6,-(a7)
  1001.         move.l _rp,a1
  1002.         move.l _graphbase,a6
  1003.         jsr -42(a6)
  1004.         movem.l (a7)+,d0-d7/a0-a6
  1005.         ENDM
  1006. ;-----------------------------------------
  1007. ;clearscreen    ;cls ab
  1008. ;-----------------------------------------
  1009. clearscreen:    MACRO
  1010.         movem.l d0-d7/a0-a6,-(a7)
  1011.         move.l _rp,a1
  1012.         move.l _graphbase,a6
  1013.         jsr -48(a6)
  1014.         movem.l (a7)+,d0-d7/a0-a6
  1015.         ENDM
  1016. ;------------------------------------------
  1017. ; scrollraster #delta_X,#delta_Y,#x1,#y1,#x2,#y2
  1018. ;------------------------------------------
  1019. scrollraster:    MACRO
  1020.         movem.l d0-d7/a0-a6,-(a7)
  1021.         move.l _rp,a1        ;Rastport
  1022.         move.l \1,d0        ;delta_x
  1023.         move.l \2,d1        ;delta_y
  1024.         move.l \3,d2        ;x1
  1025.         move.l \4,d3        ;y1
  1026.         move.l \5,d4        ;X2
  1027.         move.l \6,d5        ;Y2
  1028.         move.l _graphbase,a6
  1029.         jsr -396(a6)
  1030.         movem.l (a7)+,d0-d7/a0-a6
  1031.         ENDM
  1032. ;------------------------------------------
  1033. ; int_text #string,#anzahl
  1034. ;------------------------------------------
  1035. int_text:    MACRO
  1036.         movem.l d0-d7/a0-a6,-(a7)
  1037.         move.l _rp,a1        ;Rastport
  1038.         move.l \1,a0        ;Adresse string
  1039.         move.l \2,d0        ;Anzahl
  1040.         move.l _graphbase,a6
  1041.         jsr -60(a6)
  1042.         movem.l (a7)+,d0-d7/a0-a6
  1043.         ENDM
  1044. ;------------------------------------------
  1045. ; text_length #string,#anzahl
  1046. ;------------------------------------------
  1047. text_length:    MACRO
  1048.         movem.l d0-d7/a0-a6,-(a7)
  1049.         move.l _rp,a1        ;Rastport
  1050.         move.l \1,a0        ;Adresse string
  1051.         move.l \2,d0        ;Anzahl
  1052.         move.l _graphbase,a6
  1053.         jsr -54(a6)
  1054.         movem.l (a7)+,d0-d7/a0-a6
  1055.         ENDM
  1056. ;------------------------------------------
  1057. ; area_draw #x,#y
  1058. ;------------------------------------------
  1059. area_draw:    MACRO
  1060.         movem.l d0-d7/a0-a6,-(a7)
  1061.         move.l _rp,a1        ;Rastport
  1062.         move.l \1,d0        ;x
  1063.         move.l \2,d1        ;y
  1064.         move.l _graphbase,a6
  1065.         jsr -258(a6)
  1066.         movem.l (a7)+,d0-d7/a0-a6
  1067.         ENDM
  1068. ;------------------------------------------
  1069. ; area_elipsee #xcor,#ycor,#xradius,#yradius
  1070. ;------------------------------------------
  1071. area_elipse:    MACRO
  1072.         movem.l d0-d7/a0-a6,-(a7)
  1073.         move.l _rp,a1        ;Rastport
  1074.         move.l \1,d0        ;Xcor
  1075.         move.l \2,d1        ;Ycor
  1076.         move.l \3,d2        ;Xcor
  1077.         move.l \4,d3        ;Ycor
  1078.         move.l _graphbase,a6
  1079.         jsr -186(a6)
  1080.         movem.l (a7)+,d0-d7/a0-a6
  1081.         ENDM
  1082. ;------------------------------------------
  1083. ; area_circle #xcor,#ycor,#radius
  1084. ;------------------------------------------
  1085. area_circle:    MACRO
  1086.         movem.l d0-d7/a0-a6,-(a7)
  1087.         move.l _rp,a1        ;Rastport
  1088.         move.l \1,d0        ;Xcor
  1089.         move.l \2,d1        ;Ycor
  1090.         move.l \3,d2        ;Xcor
  1091.         move.l d2,d3        ;Ycor
  1092.         move.l _graphbase,a6
  1093.         jsr -186(a6)
  1094.         movem.l (a7)+,d0-d7/a0-a6
  1095.         ENDM
  1096. ;------------------------------------------
  1097. ; area_end
  1098. ;------------------------------------------
  1099. area_end:    MACRO
  1100.         movem.l d0-d7/a0-a6,-(a7)
  1101.         move.l _rp,a1        ;Rastport
  1102.         move.l _graphbase,a6
  1103.         jsr -264(a6)
  1104.         movem.l (a7)+,d0-d7/a0-a6
  1105.         ENDM
  1106. ;------------------------------------------
  1107. ; area_move #xcor,#ycor
  1108. ;------------------------------------------
  1109. area_move:    MACRO
  1110.         movem.l d0-d7/a0-a6,-(a7)
  1111.         move.l _rp,a1        ;Rastport
  1112.         move.l \1,d0        ;Xcor
  1113.         move.l \2,d1        ;Ycor
  1114.         move.l _graphbase,a6
  1115.         jsr -252(a6)
  1116.         movem.l (a7)+,d0-d7/a0-a6
  1117.         ENDM
  1118. ;------------------------------------------
  1119. ; init_area #area_info,#buffer,#Anzahl Punkte
  1120. ;------------------------------------------
  1121. init_area:    MACRO
  1122.         movem.l d0-d7/a0-a6,-(a7)
  1123.         move.l \1,a0        ;
  1124.         move.l \2,a1        ;
  1125.         move.l \3,d0        ;
  1126.         move.l _graphbase,a6
  1127.         jsr -282(a6)
  1128.         movem.l (a7)+,d0-d7/a0-a6
  1129.         ENDM
  1130. ;------------------------------------------
  1131. ; init_tmpras #tmpras,#buffer,#größe
  1132. ;------------------------------------------
  1133. init_tmpras:    MACRO
  1134.         movem.l d0-d7/a0-a6,-(a7)
  1135.         move.l \1,a0
  1136.         move.l \2,a1
  1137.         move.l \3,d0
  1138.         move.l _graphbase,a6
  1139.         jsr -468(a6)
  1140.         movem.l (a7)+,d0-d7/a0-a6
  1141.         ENDM
  1142. ;------------------------------------------
  1143. ; freecolormap
  1144. ;------------------------------------------
  1145. freecolormap:    MACRO
  1146.         movem.l d0-d7/a0-a6,-(a7)
  1147.         move.l \1,a0        ;Adresse der ColorMap
  1148.         move.l _graphbase,a6
  1149.         jsr -576(a6)
  1150.         movem.l (a7)+,d0-d7/a0-a6
  1151.         ENDM
  1152. ;------------------------------------------
  1153. ; getcolormap
  1154. ;------------------------------------------
  1155. getcolormap:    MACRO
  1156.         movem.l d1-d7/a0-a6,-(a7)
  1157.         move.l \1,d0        ;Anzahl der Farben
  1158.         move.l _graphbase,a6
  1159.         jsr -570(a6)
  1160.         movem.l (a7)+,d1-d7/a0-a6
  1161.         ENDM            ;d0 = Adresse der ColorMap
  1162. ;------------------------------------------
  1163. ; getrgb4
  1164. ;------------------------------------------
  1165. getrgb4:    MACRO
  1166.         movem.l d1-d7/a0-a6,-(a7)
  1167.         move.l \1,a0        ;colormap
  1168.         move.l \2,d0        ;Farbnummer
  1169.         move.l _graphbase,a6
  1170.         jsr -582(a6)
  1171.         movem.l (a7)+,d1-d7/a0-a6
  1172.         ENDM            ;d0 = Farbe
  1173. ;------------------------------------------
  1174. ; loadrgb4
  1175. ;------------------------------------------
  1176. loadrgb4:    MACRO
  1177.         movem.l d0-d7/a0-a6,-(a7)
  1178.         move.l _vp,a0
  1179.         move.l \1,a1        ;Farb Palette
  1180.         move.l \2,d0        ;Farb Einträge
  1181.         move.l _graphbase,a6
  1182.         jsr -192(a6)
  1183.         movem.l (a7)+,d0-d7/a0-a6
  1184.         ENDM
  1185. ;------------------------------------------
  1186. ; setrgb4cm
  1187. ;------------------------------------------
  1188. setrgb4cm:    MACRO
  1189.         movem.l d0-d7/a0-a6,-(a7)
  1190.         move.l \1,a0        ;Colormap
  1191.         move.l \2,d0        ;Farbregister
  1192.         move.l \3,d1        ;rot
  1193.         move.l \4,d2        ;grün
  1194.         move.l \5,d3        ;blau
  1195.         move.l _graphbase,a6
  1196.         jsr -630(a6)
  1197.         movem.l (a7)+,d0-d7/a0-a6
  1198.         ENDM            ;d0 = Adresse der ColorMap
  1199. ;------------------------------------------
  1200. ; setrgb4 #farbnummer,#rot,#gelb,#blau
  1201. ;------------------------------------------
  1202. setrgb4:    MACRO
  1203.         movem.l d0-d7/a0-a6,-(a7)
  1204.         move.l _vp,a0        ;Viewport
  1205.         move.l \1,d0        ;Farbregister 0
  1206.         move.l \2,d1        ;rot
  1207.         move.l \3,d2        ;gelb
  1208.         move.l \4,d3        ;blau
  1209.         move.l _graphbase,a6
  1210.         jsr -288(a6)
  1211.         movem.l (a7)+,d0-d7/a0-a6
  1212.         ENDM
  1213. ;------------------------------------------
  1214. ; gotoxy #Xcoord,#Ycoord
  1215. ;------------------------------------------
  1216. gotoxy:        MACRO
  1217.         movem.l d0-d7/a0-a6,-(a7)
  1218.         move.l _rp,a1        ;Rastport
  1219.         move.l \1,d0        ;Xcoord
  1220.         move.l \2,d1        ;Ycoord
  1221.         move.l _graphbase,a6
  1222.         jsr -240(a6)
  1223.         movem.l (a7)+,d0-d7/a0-a6
  1224.         ENDM
  1225.  
  1226. ;********************************
  1227. ;Betriebssystem Funktionen
  1228.  
  1229. Chip_Ram    =$30003
  1230. Fast_Ram    =$30005
  1231.  
  1232. ;Exec und Intuition (fehlt einiges(fast alles))
  1233. OpenLib        =-408
  1234. ExecBase    = 4
  1235. CloseLibrary    =-414
  1236. OpenScreen    =-198
  1237. CloseScreen    =-66
  1238. AllocMem    =-198
  1239. FreeMem        =-210
  1240. AvailMem    =-216
  1241. setpointer    =-$10e
  1242.  
  1243. ;Dos Library
  1244. open        =-30
  1245. close        =-36
  1246. read        =-42
  1247. write        =-48
  1248. DeleteFile    =-72
  1249. Rename        =-78
  1250. mode_old    = 1005
  1251. mode_new    = 1006
  1252.  
  1253.